package com.projles.release1.database;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;


public class BDAdapter {
	
	/*
	 * Eram testes - revisar e adicionar os metodos necessarios
	 */
	
	private Context context;
	private BDHelper bdHelper;
	private SQLiteDatabase banco;

	public String TABLE = "jogadores";
	public static final String KEY_ID_LINHA = "_id";
	public static final String KEY_NOME = "nome";
	
	
	public BDAdapter(Context context) {
		this.context = context;
	}
	
	public BDAdapter open() throws SQLException {
		bdHelper = new BDHelper(context);
		banco = bdHelper.getWritableDatabase();
		return this;
	}

	public void close() {
		bdHelper.close();
	}

	public void inserirJogador(String nome) {
		
		banco.execSQL("INSERT INTO " + TABLE + " (nome) VALUES('"+nome+"');");
	}

	public boolean updateJogador(long rowId, String nome, String foto) {
		
		ContentValues updateValues = criarContentValues(nome, foto);

		return banco.update(TABLE, updateValues, "_id ="+ rowId, null) > 0;   
	}

	public boolean deleteJogador(long rowId) {
		return banco.delete(TABLE, "_id =" + rowId, null) > 0;
	}
	
	public boolean deleteJogador(String nome) {
		return banco.delete(TABLE, "nome IS '" + nome + "' ", null) > 0;
	}

	public Jogador[] getAllJogadores() {
		Cursor cursor = banco.query(TABLE, 
							new String[] {KEY_ID_LINHA, KEY_NOME}, 
							null, null, null, null, null);

		Jogador[] jogadores = new Jogador[cursor.getCount()];
		int contador = 0;
		
		while(cursor.moveToNext()) {
			String nome = cursor.getString(1);
			jogadores[contador] = new Jogador(nome);
			contador++;
		}
		
		return jogadores;	
	}

	public int deleteAllUsuarios() {
		return banco.delete(TABLE, "1", null);
	}
	
	public Cursor getJogador(long rowId) throws SQLException {
		
		Cursor mCursor = banco.query(true,                                                      
									 TABLE,             
									 new String[] { KEY_ID_LINHA, KEY_NOME},  
									 KEY_ID_LINHA + "=" + rowId,                                
									 null, null, null, null, null);
		if (mCursor != null) {
			mCursor.moveToFirst();
		}
		return mCursor;
	}
	
	public Cursor getJogador(String nome) throws SQLException {
		Cursor mCursor = banco.query(TABLE,             
									 new String[] { KEY_ID_LINHA, KEY_NOME},  
									 KEY_NOME + " = '" + nome + "' ",                                
									 null, null, null, null, null);
		if (mCursor != null) {
			mCursor.moveToFirst();
		}
		return mCursor;
	}

	
	private ContentValues criarContentValues(String nome, String foto) {
		ContentValues values = new ContentValues();
		
		values.put("nome", nome);
		values.put("foto", foto);
		return values;
	}

}
